package com.mango.iot.gateway.http.controller.req;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

/**
 * 认证请求对象
 *
 * @author liangfeihu
 * @since 2021/8/24 15:04
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AuthReq {

    /**
     * 时间戳
     */
    @NotNull(message = "时间戳不能为空")
    private Long timestamp;

    /**
     * 客户端ID。 长度为64字符内，建议以MAC地址或SN码作为clientId。
     */
    @NotEmpty(message = "客户端Id不能为空")
    private String clientId;

    /**
     * 设备所属产品的ProductKey
     */
    @NotEmpty(message = "设备所属的产品Key不能为空")
    private String productKey;

    /**
     * 设备标识
     */
    @NotEmpty(message = "设备标识不能为空")
    private String deviceNo;

    /**
     * 签名。 签名计算格式为hmacmd5(DeviceSecret,content)。
     */
    @NotEmpty(message = "签名不能为空")
    private String sign;

    /**
     * 算法类型，支持hmacmd5和hmacsha1。 若不传入此参数，则默认为hmacmd5。
     */
    private String signmethod = "hmacmd5";

    /**
     * 版本号。若不传入此参数，则默认default。
     */
    private String version = "default";

}
